package com.yc.hwc.bean;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

import lombok.Data;

@Data
/**
 *  解决 UnrecognizedPropertyException 异常问题
 *  	问题为json中存在一个你想要实体化类中没有的属性时，就会报此错，
 *  	例如：json中有name属性，但是User中没有name属性，抛此异常。
 *  	同时User对象的顺序对序列化没有影响。
 */
@JsonIgnoreProperties(ignoreUnknown = true)
public class Result<T> implements java.io.Serializable {

	private static final long serialVersionUID = 1L;
	private int code; // 1成功， 0失败
	private String msg;
	private T data;

	/**
	 *	成功结果对象 
	 */
	public static Result<?> success(String msg) {
		return new Result<Object>(1, msg);
	}

	/**
	 *	成功结果对象 
	 */
	public static <T> Result<T> success(String msg, T data) {
		return new Result<T>(1, msg, data);
	}

	/**
	 *	失败结果对象 
	 */
	public static Result<?> failure(String msg) {
		return new Result<Object>(0, msg);
	}

	/**
	 *	失败结果对象 
	 */
	public static <T> Result<T> failure(String msg, T data) {
		return new Result<T>(0, msg, data);
	}

	public Result(int code, String msg) {
		this.code = code;
		this.msg = msg;
	}

	public Result(int code, String msg, T data) {
		this.code = code;
		this.msg = msg;
		this.data = data;
	}

	public Result() {
	}

	public boolean isFailure() {
		return code!=1;
	}
	
	public boolean isSuccess() {
		return code!=1;
	}
}
